package com.ctcemti.mdm.project.sys.service;

import com.ctcemti.mdm.project.sys.entity.SysMenu;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @ClassName SysMenuMapper
 * @Description 菜单管理逻辑层接口层
 * @Author bxf
 * @Date 11:20 2019/7/12
 * @Version V1.0
 **/

public interface ISysMenuService {
    /**
     * @Author bxf
     * @Description 根据主键删除
     * @Date 11:38 2019/7/12
     * @Param 
     * @return 
     **/
    int deleteByPrimaryKey(Integer id);
    /**
     * @Author bxf
     * @Description 插入菜单
     * @Date 11:39 2019/7/12
     * @Param 
     * @return 
     **/
    int insert(SysMenu record);

    /**
     * @Author bxf
     * @Description 选择性字段插入
     * @Date 11:39 2019/7/12
     * @Param 
     * @return 
     **/
    int insertSelective(SysMenu record);
    /**
     * @Author bxf
     * @Description 根据主键获取
     * @Date 11:40 2019/7/12
     * @Param 
     * @return 
     **/
    SysMenu selectByPrimaryKey(Integer id);
    /**
     * @Author bxf
     * @Description
     * @Date 11:41 2019/7/12
     * @Param 根据主键选择性字段更新对象
     * @return 
     **/
    int updateByIdSelective(SysMenu sysMenu);
    /**
     * @Author bxf
     * @Description
     * @Date 11:47 2019/7/12
     * @Param 根据主键更新对象
     * @return 
     **/
    int updateByPrimaryKey(SysMenu record);

    /**
     * @Author bxf
     * @Description 获取所有菜单子目
     * @Date 10:55 2019/7/15
     * @Param 
     * @return 
     **/
    public List<SysMenu> selectAllMenu();

    /**
     * @Author bxf
     * @Description 根据父id(包含人员权限)获取对象list
     * @Date 16:18 2019/7/12
     * @Param
     * @return
     **/
    public List<SysMenu> selectByPid(Map<String,Object> params);

    /**
     * @Author bxf
     * @Description 根据实体中的属性值进行查询，查询条件使用等号
     * @Date 15:19 2019/7/16
     * @Param 
     * @return 
     **/
    public List<SysMenu> selectMenu(SysMenu sysMenu);

    /**
     * 根据菜单名称（包含权限）查询树结构
     * @param name
     * @return
     */
    public List<SysMenu> selectMenuByMenuName(Map<String,Object> params);

    /**
     * @Author bxf
     * @Description 根据主键删除
     * @Date 11:38 2019/7/12
     * @Param
     * @return
     **/
    int deleteByPrimaryKeys(String ids);

    /* *
     * @Author bxf
     * @Description 级联查询button
     * @Date 10:49 2019/8/3
     * @param map
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<SysMenu> selectById(Map<String,Object> map);
    /* *
     * @Author bxf
     * @Description 岗位挂接菜单
     * @Date 14:19 2019/8/24
     * @param jobid
     * @param menuids
     * @return int
     */
    int bindJobAndMenu(String jobid, String menuids);

    /* *
     * @Author bxf
     * @Description 根据岗位id获取菜单（去重）
     * @Date 19:19 2019/8/24
     * @param list
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<SysMenu> selectAllMenuByJob(List<String> list);
    /* *
     * @Author bxf
     * @Description 根据岗位获取权限
     * @Date 8:28 2019/11/29
     * @param
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<String> selectPermissionsFromRole(HttpServletRequest request);
    /* *
     * @Author bxf
     * @Description 根据岗位获取所有菜单
     * @Date 8:28 2019/11/29
     * @param
     * @return java.util.List<com.ctcemti.mdm.project.sys.entity.SysMenu>
     */
    List<SysMenu> selectMenusFromRole(HttpServletRequest request);
}